Airbnb 的 React Native 经验(译)

作者:Gabriel Peal


2016年,我们在 React Native 上投入非常多。两年后,我们已经准备好跟世界分享经验并聊聊接下来要做的事情。

15295502446088

这是首次在连载的博客中披露我们使用 React Native 的经验和 Airbnb 在移动端方面接下来的动作。

在十年前 Airbnb 诞生时,智能手机还处在发展初期。自那时起,智能手机就变成了不可或缺的工具,引领着我们每天的生活,尤其是越来越多的人开始在世界各地旅行。作为一个可以让数百万人拥有新的出行模式的社区,拥有一个世界级的 APP 显得尤为重要。当离家很远时,移动设备就成为了主要的,或者说是唯一的交流形式。

从2008年最初的三名旅客落脚在 Rausch Street 到现在,移动端的使用从0增长到每年上百万的预定。我们的 apps 能让房主在外出的时候也能够管理登记列表,同时也能为旅客提供灵感,让他们在指尖上就能发现新的地方和体验。

为了跟上移动使用加速的步伐,我们的团队发展到了超过100名移动工程师,来支持新的体验以及提升现有的体验。

将赌注压在 React Native 上

我们在持续评估新的技术,用来为房主和旅客提升使用 Airbnb 的体验,迅速行动,以及保持良好的开发者体验。2016年,React Native 便是其中一个。当时,我们已经意识到移动端对业务发展来说有多重要,但又没有足够的移动端工程师来实现业务目标。因此,我们便开始探索可替代的方案。Web 端站点是基于 React 构建的,且 React 在 Airbnb 内部一直是一个高效又普遍受欢迎的 web 框架。正因如此,我们认为 React Native 能够成为一个机会,使得移动开发可以面向更多工程师开放,以及可以利用其跨平台特性快速的发布代码。

我们开始在 React Native 上边投入时,就知道是存在风险的。这意味着在代码库中添加一个全新的,快速发展的,未经过验证的平台,这个平台会将项目分解,而不是统一起来。同时我们也清楚,如果要在 React Native 上投入,那就希望把它做好。我们对 React Native 的期望是:

  1. 能够让我们作为组织加快步伐
  2. 能保证原生应用那样的质量标准
  3. 移动端只写一套业务代码,而不是两套
  4. 提升开发体验

我们的经验

在过去的两年间,我们已经在 apps 中构建了非常强大的集成,以支持复杂的原生特性,如共享元素过渡、视差和地理围栏,以及连接到我们现有的本地基础设施,如网络、实验和国际化。

Airbnb 已经推出了一系列使用 React Native 开发的产品。使用 React Native,我们推出了 “Experiences” 这款产品,这是 Airbnb 的新业务,还有从评论到礼品卡的一系列功能。这里边很多的功能都是在没有足够的 native 工程师来实现的情况下构建的。

不同的团队对于 React Native 都有着广泛的经验。React Native 被认为是不可思议的工具,同时又会给人带来技术和组织上的挑战。在这个系列的文章中,我们会详细介绍在使用过程中的经验,和接下来要做的事情。

在第二部分中,列举了 React Native 技术中哪些是有用的,哪些是无用的。(译文

在第三部分中, 列举了跟组建跨平台移动团队相关的组织方面的挑战。(译文

第四部分中,强调了现在我们对于 React Native 的立场,以及它未来在 Airbnb 中的角色。(译文)

第五部分,介绍了我们用从 React Native 中学到的知识,去使原生变得更好。


翻译:Rebecca Han
译自 Gabriel Peal(Airbnb 工程师) 发表在 Medium 上的文章。
原文链接: https://medium.com/airbnb-engineering/react-native-at-airbnb-f95aa460be1c